package com.k12.user.controller;

import com.k12.user.model.entity.SysUser;
import com.k12.user.service.SysUserService;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
 * 用户信息表(SysUser)表控制层
 *
 * @author makejava
 * @since 2025-07-28 20:53:08
 */
@RestController
@RequestMapping("sysUser")
public class SysUserController {
    /**
     * 服务对象
     */
    @Resource
    private SysUserService sysUserService;

    /**
     * 分页查询
     *
     * @param sysUser 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    @GetMapping("getAllUser")
    public List<SysUser> queryByPage(SysUser sysUser) {
        return this.sysUserService.queryByPage(sysUser);
    }



    @GetMapping("login")
    public SysUser getLogin(String userName,String password) {
        return this.sysUserService.getLogin(userName, password);
    }




    @PostMapping("checkRegister")
    public String checkRegister(SysUser sysUser) {
        return this.sysUserService.checkRegister(sysUser);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("getOneUser/{id}")
    public SysUser queryById(@PathVariable("id") Long id) {
        return this.sysUserService.queryById(id);
    }


    @GetMapping("selectUserById")
    public SysUser selectUserById(@RequestParam("tenantId") String tenantId,@RequestParam("userId") Long userId) {
        return this.sysUserService.selectUserById(tenantId, userId);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("listPermission")
    public List<String> listPermission(Long userId) {
        return this.sysUserService.listPermission(userId);
    }


    /**
     * 新增数据
     *
     * @param sysUser 实体
     * @return 新增结果
     */
    @PostMapping("insertUser")
    public SysUser add(SysUser sysUser) {
        return this.sysUserService.insert(sysUser);
    }

    /**
     * 新增数据
     *
     * @param sysUser 实体
     * @return 新增结果
     */
    @PostMapping("addUser")
    public Long addUser(SysUser sysUser) {
        return this.sysUserService.addUser(sysUser);
    }

    /**
     * 编辑数据
     *
     * @param sysUser 实体
     * @return 编辑结果
     */
    @PostMapping("updateUser")
    public SysUser edit(SysUser sysUser) {
        return this.sysUserService.update(sysUser);
    }

    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @GetMapping("deleteUser")
    public Boolean deleteById(Long id) {
        return this.sysUserService.deleteById(id);
    }


    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @GetMapping("deleteSysUser")
    public void deleteSysUser(@RequestParam("tenantId") String tenantId,@RequestParam("userId") Long userId) {
        this.sysUserService.deleteSysUser(userId,tenantId);
    }



    /**
     * 删除数据
     *
     * @param id 主键
     * @return 删除是否成功
     */
    @GetMapping("checkDeptExistUser")
    public int checkDeptExistUser(@RequestParam("tenantId") String tenantId,@RequestParam("userId") Long userId) {
        return this.sysUserService.checkDeptExistUser(userId,tenantId);
    }



}

